package com.luoc;

import com.luoc.service.Discount;
import com.luoc.service.MovieTicket;
import com.luoc.service.impl.StudentDiscount;

/**
 * @Author: luoc
 * @Date: 2019/10/10 16:36
 * 策略模式
 * 策略模式(Strategy Pattern)：定义一系列算法类，将每一个算法封装起来，并让它们可以相互替换，
 * 策略模式让算法独立于使用它的客户而变化，也称为政策模式(Policy)。策略模式是一种对象行为型模式。
 */
public class StrategyPattern {

    public static void main(String[] args) {
        StudentDiscount discount = new StudentDiscount();

        MovieTicket movieTicket = new MovieTicket();
        movieTicket.setPrice(100D);
        movieTicket.setDiscount(discount);
        System.out.println(movieTicket.getDiscountPrice());
    }
}
